home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 November / CHIP Kasım 1996.iso / prog / callaudt / disk1 / disk1.exe / CADEMO30.MS_ / CADEMO30.MS
Text File  |  1996-03-21  |  17KB  |  585 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Setup for CallAudit
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST BADPATH       = 6400
  20. CONST GETNAME       = 7500
  21. CONST CONFIRMNAME   = 7300
  22. CONST REGCARD       = 7801
  23. CONST CONFIRMPREV   = 7802
  24. CONST AREACODEDLG   = 1000
  25. CONST CIDOPTIONSDLG = 1100
  26. CONST ASKUNINSTALL  = 2000
  27. CONST EXITUNINSTALL = 2100
  28. CONST CLOSECOMMSW   = 2200
  29. CONST SOUND_OPTIONS = 2300
  30.  
  31.  
  32.  
  33. ''Parameters to maximize setup window area
  34. CONST WS_VISIBLE=&H10000000
  35. CONST WS_BORDER =&H00800000
  36. CONST WS_CLIPCHILDREN =&H02000000
  37. CONST GWL_STYLE =-16
  38. CONST SW_SHOWMAXIMIZED=3
  39.  
  40. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  41. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG     ''this declaration must all be on one line
  42.  
  43.  
  44. ''Bitmap ID
  45. CONST LOGO = 1
  46.  
  47. GLOBAL DEST$        ''Default destination directory.
  48. GLOBAL DestDrive$   ''Default destination drive
  49. GLOBAL OPTCUR$      ''Option selection from option dialog.
  50. GLOBAL UserName$    ''User name for registration.
  51. GLOBAL UserOrg$     ''User company for registration.
  52. GLOBAL CALAUDITINI$ ''CallAudit INI file name
  53. GLOBAL CALAUDITOLDINI$ ''Old CallAudit INI file name
  54.  
  55.  
  56. DECLARE SUB Install
  57. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  58.  
  59. INIT:
  60. '
  61. ' Make setup window maximized
  62. '
  63. hWnd%=HwndFrame()
  64. i1&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  65. j1%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  66.  
  67.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  68.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  69.  
  70.     SetBitmap CUIDLL$, LOGO
  71.     SetTitle "CallAudit Installation and Setup"
  72.  
  73.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  74.     IF szInf$ = "" THEN
  75.         szInf$ = GetSymbolValue("STF_CWDDIR") + "CADEMO30.INF"
  76.     END IF
  77.     ReadInfFile szInf$
  78.  
  79.     OPTCUR$ = "1"
  80.     DEST$ = "C:\CalAudit"
  81.     CALAUDITINI$ = GetWindowsDir+"CalAud32.ini"
  82.     CALAUDITOLDINI$ = GetWindowsDir+"CalAudit.ini"
  83.  
  84. '$IFDEF DEBUG
  85.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  86.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  87.     IF IsDriveValid(WinDrive$) = 0 THEN
  88.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  89.         GOTO QUIT
  90.     END IF
  91. '$ENDIF ''DEBUG
  92.  
  93.  
  94. '
  95. ' Put up welcome dialog
  96. '
  97. WELCOME:
  98.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  99.     IF sz$ = "CONTINUE" THEN
  100.         UIPop 1
  101.     ELSE
  102.         GOSUB ASKQUIT
  103.         GOTO WELCOME
  104.     END IF
  105.  
  106.  
  107. '
  108. ' Put up comm software alert dialog
  109. '
  110. CHECKCOMM:
  111.     sz$ = UIStartDlg(CUIDLL$, CLOSECOMMSW, "FInfoDlgProc", APPHELP, HELPPROC$)
  112.     IF sz$ = "CONTINUE" THEN
  113.         UIPop 1
  114.     ELSE
  115.         UIPopAll
  116.         ERROR STFQUIT
  117.     END IF
  118.  
  119.  
  120. '
  121. ' Check if name and company exists from previous installation
  122. '
  123. CHECKNAMEORG:
  124.     'First check if new CallAudit ini file exists
  125.     IF DoesFileExist(CALAUDITINI$, femExists) = 1 THEN
  126.         ' Get the current values from the ini file
  127.         UserName$ = GetIniKeyString(CALAUDITINI$, "OwnerShip", "registeredOwner")
  128.         UserOrg$ = GetIniKeyString(CALAUDITINI$, "OwnerShip", "registeredOwnerCompany")
  129.         GOTO CONFIRMOLD
  130.     ELSE
  131.     'Check if old file exists
  132.         IF DoesFileExist(CALAUDITOLDINI$, femExists) = 1 THEN
  133.             ' Get the current values from the ini file
  134.             UserName$ = GetIniKeyString(CALAUDITOLDINI$, "OwnerShip", "registeredOwner")
  135.             UserOrg$ = GetIniKeyString(CALAUDITOLDINI$, "OwnerShip", "registeredOwnerCompany")
  136.             GOTO CONFIRMOLD
  137.         ELSE
  138.             GOTO GETNAME
  139.         END IF
  140.     END IF
  141.  
  142.  
  143. '
  144. ' Confirm name and company just entered
  145. '
  146. CONFIRMOLD:
  147.     SetSymbolValue "ConfirmTextIn", ""
  148.     AddListItem "ConfirmTextIn", "Name: " + UserName$
  149.     AddListItem "ConfirmTextIn", "Company: " + UserOrg$
  150. CONFIRMOLD1:
  151.     sz$ = UIStartDlg(CUIDLL$, CONFIRMPREV, "FConfirmDlgProc", APPHELP, HELPPROC$)
  152.     IF sz$ = "CONTINUE" THEN
  153.         UIPop 1
  154.         GOTO GETPATH
  155.     ELSE
  156.         UIPop 1
  157.         GOTO GETNAME
  158.     END IF
  159.  
  160.  
  161. '
  162. ' Get name and company for registration
  163. '
  164. GETNAME:
  165.     sz$ = UIStartDlg(CUIDLL$, GETNAME, "FNameOrgDlgProc", APPHELP, HELPPROC$)
  166.     IF sz$ = "CONTINUE" THEN
  167.         UserName$ = GetSymbolValue("NameOut")
  168.         UserOrg$ = GetSymbolValue("OrgOut")
  169.         UIPop 1
  170.     ELSE
  171.         GOSUB ASKQUIT
  172.     END IF
  173.  
  174.  
  175. '
  176. ' Confirm name and company just entered
  177. '
  178. CONFIRM:
  179.     SetSymbolValue "ConfirmTextIn", ""
  180.     AddListItem "ConfirmTextIn", "Name: " + UserName$
  181.     AddListItem "ConfirmTextIn", "Company: " + UserOrg$
  182. CONFIRM1:
  183.     sz$ = UIStartDlg(CUIDLL$, CONFIRMNAME, "FConfirmDlgProc", APPHELP, HELPPROC$)
  184.     IF sz$ = "CONTINUE" THEN
  185.         UIPop 1
  186.     ELSE
  187.         UIPop 1
  188.         GOTO GETNAME
  189.     END IF
  190.  
  191.  
  192. '
  193. ' Get drive and path for software destination
  194. '
  195. GETPATH:
  196.     ' First check if CALL AUDIT ini file and destination path exists
  197.     IF DoesFileExist(CALAUDITINI$, femExists) = 1 THEN
  198.         IF ( DoesIniSectionExist(CALAUDITINI$, "Location") = 1 ) THEN
  199.             IF ( DoesIniKeyExist(CALAUDITINI$, "Location", "ProgramLocation") = 1 ) THEN
  200.                 ' Get the current values from the ini file
  201.                 DEST$ = GetIniKeyString(CALAUDITINI$, "Location", "ProgramLocation")
  202.             ENDIF
  203.         END IF
  204.     ELSE
  205.     ' Check for old file
  206.         IF DoesFileExist(CALAUDITOLDINI$, femExists) = 1 THEN
  207.             IF ( DoesIniSectionExist(CALAUDITOLDINI$, "Location") = 1 ) THEN
  208.                 IF ( DoesIniKeyExist(CALAUDITOLDINI$, "Location", "ProgramLocation") = 1 ) THEN
  209.                     ' Get the current values from the ini file
  210.                     DEST$ = GetIniKeyString(CALAUDITOLDINI$, "Location", "ProgramLocation")
  211.                 ENDIF
  212.             END IF
  213.            END IF
  214.     END IF
  215.     
  216.     SetSymbolValue "EditTextIn", DEST$
  217.     SetSymbolValue "EditFocus", "END"
  218. GETPATHL1:
  219.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  220.     DEST$ = GetSymbolValue("EditTextOut")
  221.  
  222.  
  223. '
  224. '   Get destination drive for later use in copying files
  225. '
  226.     DestDrive$ = MID$(DEST$,1,1)
  227.     IF IsDriveValid(DestDrive$) = 0 THEN
  228.         i% = DoMsgBox("Destination drive ('"+DestDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  229.         GOTO GETPATH
  230.     END IF
  231.  
  232. '
  233. '   Add : character to make it a full path
  234. '
  235.     DestDrive$ = DestDrive$ + ":"
  236.  
  237.     IF sz$ = "CONTINUE" THEN
  238.         IF IsDirWritable(DEST$) = 0 THEN
  239.             GOSUB BADPATH
  240.             GOTO GETPATHL1
  241.         END IF
  242.         UIPop 1
  243.     ELSEIF sz$ = "REACTIVATE" THEN
  244.         GOTO GETPATHL1
  245.     ELSEIF sz$ = "BACK" THEN
  246.         UIPop 1
  247.         GOTO CONFIRM
  248.     ELSE
  249.         GOSUB ASKQUIT
  250.         GOTO GETPATH
  251.     END IF
  252.  
  253.  
  254.     Install
  255.  
  256.  
  257. '
  258. ' Get local area code
  259. '
  260. GETAREACODE:
  261.  
  262.     LOCALAREACODE$ = "540"
  263.     
  264. ' First check if CALL AUDIT ini file and destination path exists
  265.     IF DoesFileExist(CALAUDITINI$, femExists) = 1 THEN
  266.         IF (DoesIniSectionExist(CALAUDITINI$, "Defaults") = 1) THEN
  267.             IF (DoesIniKeyExist(CALAUDITINI$, "Defaults", "localAreaCode") = 1) THEN
  268.                 ' Get the current value from the ini file
  269.                 LOCALAREACODE$ = GetIniKeyString(CALAUDITINI$, "Defaults", "localAreaCode")
  270.             ENDIF
  271.         END IF
  272.     END IF
  273.     
  274.     SetSymbolValue "EditTextIn", LOCALAREACODE$
  275.     
  276.     sz$ = UIStartDlg(CUIDLL$, AREACODEDLG, "FEditDlgProc", 0, "")
  277.     LOCALAREACODE$ = GetSymbolValue("EditTextOut")
  278.  
  279.     CreateIniKeyValue CALAUDITINI$, "Defaults", "localAreaCode", LOCALAREACODE$, cmoOverwrite
  280.     UIPop 1
  281.  
  282.  
  283. '
  284. ' Get Caller ID option
  285. '
  286. GETCIDOPTION:
  287.  
  288.     CIDOPTION$ = "1"
  289.                    
  290. ' First check if CALL AUDIT ini file and destination path exists
  291.     IF DoesFileExist(CALAUDITINI$, femExists) = 1 THEN
  292.         IF (DoesIniSectionExist(CALAUDITINI$, "ModemParms") = 1) THEN
  293.             IF (DoesIniKeyExist(CALAUDITINI$, "ModemParms", "CallerIdOption") = 1) THEN
  294.                 ' Get the current value from the ini file
  295.                 TEMPOPTION$ = GetIniKeyString(CALAUDITINI$, "ModemParms", "CallerIdOption")
  296.                 
  297.                 IF  TEMPOPTION$ = "0" THEN
  298.                     CIDOPTION$ = "1"
  299.                 END IF
  300.                 
  301.                 IF  TEMPOPTION$ = "1" THEN
  302.                     CIDOPTION$ = "2"
  303.                 END IF
  304.                 
  305.             END IF
  306.         END IF
  307.     END IF
  308.     
  309.     SetSymbolValue "RadioDefault", CIDOPTION$
  310.  
  311.     sz$ = UIStartDlg(CUIDLL$, CIDOPTIONSDLG, "FRadioDlgProc", 0, "")
  312.     TEMPOPTION$ = GetSymbolValue("ButtonChecked")
  313.     
  314.     IF  TEMPOPTION$ = "1" THEN
  315.         CIDOPTION$ = "0"
  316.     END IF
  317.  
  318.     IF  TEMPOPTION$ = "2" THEN
  319.         CIDOPTION$ = "1"
  320.     END IF
  321.  
  322.     CreateIniKeyValue CALAUDITINI$, "ModemParms", "CallerIdOption", CIDOPTION$, cmoOverwrite
  323.     UIPop 1
  324.     
  325.  
  326. '
  327. ' Get Sound option
  328. '
  329. GETSOUNDOPTION:
  330.  
  331.     SOUNDOPTION$ = "1"
  332.                    
  333. ' First check if CALL AUDIT ini file and destination path exists
  334.     IF DoesFileExist(CALAUDITINI$, femExists) = 1 THEN
  335.         IF (DoesIniSectionExist(CALAUDITINI$, "Defaults") = 1) THEN
  336.             IF (DoesIniKeyExist(CALAUDITINI$, "Defaults", "PlaySystemSounds") = 1) THEN
  337.                 ' Get the current value from the ini file
  338.                 TEMPOPTION$ = GetIniKeyString(CALAUDITINI$, "Defaults", "PlaySystemSounds")
  339.                 
  340.                 IF  TEMPOPTION$ = "1" THEN
  341.                     SOUNDOPTION$ = "1"
  342.                 END IF
  343.                 
  344.                 IF  TEMPOPTION$ = "0" THEN
  345.                     SOUNDOPTION$ = "2"
  346.                 END IF
  347.                 
  348.             END IF
  349.         END IF
  350.     END IF
  351.     
  352.     SetSymbolValue "RadioDefault", SOUNDOPTION$
  353.  
  354.     sz$ = UIStartDlg(CUIDLL$, SOUND_OPTIONS, "FRadioDlgProc", 0, "")
  355.     TEMPOPTION$ = GetSymbolValue("ButtonChecked")
  356.     
  357.     IF  TEMPOPTION$ = "1" THEN
  358.         SOUNDOPTION$ = "1"
  359.     END IF
  360.  
  361.     IF  TEMPOPTION$ = "2" THEN
  362.         SOUNDOPTION$ = "0"
  363.     END IF
  364.  
  365.     CreateIniKeyValue CALAUDITINI$, "Defaults", "PlaySystemSounds", SOUNDOPTION$, cmoOverwrite
  366.     UIPop 1
  367.     
  368.     
  369.  
  370. QUIT:
  371.     ON ERROR GOTO ERRQUIT
  372.  
  373.     IF ERR = 0 THEN
  374.         dlg% = EXITSUCCESS
  375.     ELSEIF ERR = STFQUIT THEN
  376.         dlg% = EXITQUIT
  377.     ELSE
  378.         dlg% = EXITFAILURE
  379.     END IF
  380. QUITL1:
  381.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  382.     IF sz$ = "REACTIVATE" THEN
  383.         GOTO QUITL1
  384.     END IF
  385.     UIPop 1
  386.  
  387.     END
  388.  
  389. ERRQUIT:
  390.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  391.     END
  392.  
  393.  
  394. BADPATH:
  395.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  396.     IF sz$ = "REACTIVATE" THEN
  397.         GOTO BADPATH
  398.     END IF
  399.     UIPop 1
  400.     RETURN
  401.  
  402.  
  403. ASKQUIT:
  404.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  405.  
  406.     IF sz$ = "EXIT" THEN
  407.         UIPopAll
  408.         ERROR STFQUIT
  409.     ELSEIF sz$ = "REACTIVATE" THEN
  410.         GOTO ASKQUIT
  411.     ELSE
  412.         UIPop 1
  413.     END IF
  414.     RETURN
  415.  
  416.  
  417. '*************************************************************************
  418. '**
  419. '** Purpose:
  420. '**     Builds the copy list and performs all installation operations.
  421. '** Arguments:
  422. '**     none.
  423. '** Returns:
  424. '**     none.
  425. '*************************************************************************
  426.  
  427. SUB Install STATIC
  428.  
  429.     sz$ = UIStartDlg("mscuistf.dll", REGCARD, "FModelessDlgProc", APPHELP, HELPPROC$)
  430.  
  431. '
  432. ' Create program directories
  433. '
  434.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  435.     CreateDir DEST$, cmoNone
  436.  
  437. '
  438. ' Create program directories
  439. '
  440.     CreateDir DEST$ + "\sounds\audiotag" , cmoNone
  441.     CreateDir DEST$ + "\notepad", cmoNone
  442.  
  443.  
  444.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  445.     WriteToLogFile ""
  446.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  447.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  448.     WriteToLogFile ""
  449.     WriteToLogFile "May have had to create the directory: " + DEST$
  450.     WriteToLogFile ""
  451.  
  452. '
  453. ' Delete any existing old database file
  454. '
  455.     DBOLDFILE$ = DEST$ + "\CALAUD32.OLD"
  456.  
  457.     IF DoesFileExist(DBOLDFILE$, femExists) = 1 THEN
  458.        RemoveFile DBOLDFILE$, cmoForce
  459.     END IF
  460.  
  461.  
  462. ' Program files
  463.     AddSectionFilesToCopyList "Program",  SrcDir$, DEST$
  464.     AddSectionFilesToCopyList "Sounds", SrcDir$, MakePath(DEST$,"sounds")
  465.     AddSectionFilesToCopyList "Uninstal", SrcDir$, GetWindowsDir()
  466.  
  467. '    AddSectionFilesToCopyList "AudioTag", SrcDir$, MakePath(DEST$,"sounds\audiotag")
  468. ' Windows\System files
  469.     AddSectionFilesToCopyList "System", SrcDir$, GetWindowsSysDir()
  470. ' Windows files
  471.     AddSectionFilesToCopyList "Windows", SrcDir$, GetWindowsDir()
  472.  
  473.     CopyFilesInCopyList
  474.  
  475. ' Take down the "Send in the registration card" dialog
  476.     UIPop 1
  477.  
  478.  
  479.  
  480. '
  481. ' Create a CallAudit INI file if one doesn't already exist
  482. '
  483.     IF ( DoesFileExist(CALAUDITINI$, femExists) = 0 ) THEN
  484.         CopyFile GetWindowsDir+"CALAUD32.XXX", CALAUDITINI$, cmoNone, 0
  485.     END IF
  486.  
  487.  
  488. '
  489. ' Add user name and org to Call Audit .ini file
  490. '
  491.     IF ( DoesIniSectionExist(CALAUDITINI$, "OwnerShip") = 1 ) THEN
  492.         CreateIniKeyValue CALAUDITINI$, "OwnerShip", "registeredOwner", UserName$, cmoOverwrite
  493.         CreateIniKeyValue CALAUDITINI$, "OwnerShip", "registeredOwnerCompany", UserOrg$, cmoOverwrite
  494.     END IF
  495.  
  496.     IF ( DoesIniSectionExist(CALAUDITINI$, "Location") = 1 ) THEN
  497.         CreateIniKeyValue CALAUDITINI$, "Location", "ProgramLocation", DEST$, cmoOverwrite
  498.         CreateIniKeyValue CALAUDITINI$, "Location", "DatabaseLocation", DEST$, cmoOverwrite
  499.     END IF
  500.  
  501.  
  502.  
  503. '
  504. ' Update the DbConvrt INI file if one already exists
  505. '
  506.     DBCONVRTINI$ = GetWindowsDir + "DBCNVT32.INI"
  507.  
  508.     IF DoesFileExist(DBCONVRTINI$, femExists) = 1 THEN
  509.        CreateIniKeyValue DBCONVRTINI$, "Defaults", "RunDatabaseConversion", "1", cmoOverwrite
  510.     END IF
  511.  
  512.  
  513. '
  514. ' Remove work files
  515. '
  516. '    RemoveFile GetWindowsDir()+"CALAUD32.XXX", cmoForce
  517.  
  518.  
  519. '    WriteToLogFile ""
  520. '    WriteToLogFile ""
  521. '    WriteToLogFile "Analyzing AUTOEXEC.BAT & CONFIG.SYS files"
  522. '    WriteToLogFile ""
  523.  
  524. ' Get window version information
  525. '    winMajor% = GetWindowsMajorVersion()
  526. '    winMinor% = GetWindowsMinorVersion()
  527.  
  528. '   WriteToLogFile "   winMajor = " + STR$(winMajor%)
  529. '   WriteToLogFile "   winMinor = " + STR$(winMinor%)
  530.  
  531. '    update% = 0
  532. '    IF winMajor% < 4 THEN
  533. '        IF winMinor% < 11 THEN
  534. '            update% = 1
  535. '        END IF
  536. '    END IF
  537.  
  538. '    IF update% = 0 THEN
  539. '        WriteToLogFile "No Update of AUTOEXEC.BAT or CONFIG.SYS required"
  540. '    ELSE
  541. '       WriteToLogFile "Possible Update of AUTOEXEC.BAT or CONFIG.SYS required"
  542. '    END IF
  543.  
  544.  
  545. '
  546. ' Create program groups
  547. '
  548.     CreateProgmanGroup "CallAudit", "", cmoNone
  549.     ShowProgmanGroup  "CallAudit", 1, cmoNone
  550.     CreateProgmanItem "CallAudit", "CallAudit32 Demo", MakePath(DEST$, "calaud32.exe"), "", cmoOverwrite
  551.     CreateProgmanItem "CallAudit", "CallAudit32 Help", MakePath(DEST$, "calaud32.hlp"), "", cmoOverwrite
  552.     CreateProgmanItem "CallAudit", "Release Notes", MakePath(DEST$, "RelNotes.txt"), "", cmoOverwrite
  553.  
  554.     CreateProgmanItem "CallAudit", "CallAudit32 Uninstall", MakePath(GetWindowsDir, "CalAudUn.exe"), "", cmoOverwrite
  555.  
  556.     CloseLogFile
  557.  
  558. END SUB
  559.  
  560.  
  561. '*************************************************************************
  562. '**
  563. '** Purpose:
  564. '**     Appends a file name to the end of a directory path,
  565. '**     inserting a backslash character as needed.
  566. '** Arguments:
  567. '**     szDir$  - full directory path (with optional ending "\")
  568. '**     szFile$ - filename to append to directory
  569. '** Returns:
  570. '**     Resulting fully qualified path name.
  571. '*************************************************************************
  572.  
  573. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  574.     IF szDir$ = "" THEN
  575.         MakePath = szFile$
  576.     ELSEIF szFile$ = "" THEN
  577.         MakePath = szDir$
  578.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  579.         MakePath = szDir$ + szFile$
  580.     ELSE
  581.         MakePath = szDir$ + "\" + szFile$
  582.     END IF
  583. END FUNCTION
  584.  
  585.